import Vue from 'vue'
import router from '@/router'
// 1、引入axios库
import axios from "axios"

// 2、创建axios实例
const service = axios.create({
    baseURL: '/api',  // api的base_url
    timeout: 5000  // 请求超时时间
})

// 3、请求拦截器
service.interceptors.request.use(
    config => {
        console.log("request url="+config.url)
        
        // 获取token，如果有token，就放入http的请求头里面
        let token = window.sessionStorage.getItem("token")
        if(token) {
            config.headers = {
                'token': token
            }
        }
        
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 4、响应拦截器
service.interceptors.response.use(
    response => {
        // 定时刷新token
        console.log(response.data)
        if(response.data.code == 401) {
            window.sessionStorage.removeItem('token')
            window.sessionStorage.removeItem('user')
            
            // 跳转到登录页面
            this.$router.push('/login')
        }
        else if(response.data.code == 200) {
            if(response.headers.token) {
                window.sessionStorage.setItem('token', response.headers.token)
            }
            // console.log('response', response);
        }
        return response
    },
    error => {
        return Promise.reject(error)
    }
)

export default service